package org.dromara.demo.designPattern.装饰器模式.decorator;

import org.dromara.demo.designPattern.装饰器模式.interceptor.HandlerInterceptor;

public abstract class SsoDecorator implements HandlerInterceptor {


    private HandlerInterceptor handlerInterceptor;

    /**
     * 提供构造函数
     */
    private SsoDecorator(){}
    public SsoDecorator(HandlerInterceptor handlerInterceptor) {
        this.handlerInterceptor = handlerInterceptor;
    }

    /**
     * 装饰器模式的核心方法，覆盖了处理接口中的方法preHandle。
     * @param request
     * @param response
     * @param handler
     * @return
     */
    public boolean preHandle(String request, String response, Object handler) {
        return handlerInterceptor.preHandle(request, response, handler);
    }

    /**
     * 在装饰类中，有三点需要注意：继承了处理接口，提供了构造函数，覆盖
     * 了方法preHandle。以上三点是装饰器模式的核心处理部分，可以替换对子类
     * 继承的方式，实现逻辑功能的扩展。
     */
}
